# -*- coding: utf-8 -*-
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from urllib.request import urlopen
# 获取文档对象
# pdf = open('文档介绍.pdf', 'rb')
pdf = urlopen('https://static.www.tencent.com/uploads/2021/08/31/41f3fe664bf91be0400ad45eb0a233cd.pdf')

# 创建一个与文档关联的解释器
parser = PDFParser(pdf)

# pdf文档对象
doc = PDFDocument()
# 连接解释器和文档对象
parser.set_document(doc)
doc.set_parser(parser)

# 初始化文档
doc.initialize("")

# 创建pdf资源管理器
resource = PDFResourceManager()

# 参数分析器
la_params = LAParams()

# 创建聚合器
device = PDFPageAggregator(resource, laparams=la_params)

# 创建pdf页面解释器
interpreter = PDFPageInterpreter(resource, device=device)

# 使用文档对象的到页面集合
for page in doc.get_pages():
    # 使用页面解释器读取
    interpreter.process_page(page)
    # 使用聚合器获取内容
    layout = device.get_result()
    for out in layout:
        if hasattr(out, 'get_text'):
            print(out.get_text())

